package com.fbty.mt.service;

import java.util.List;
import java.util.Map;

import com.fbty.base.domain.Page;
import com.fbty.mt.domain.User;
import com.fbty.mt.domain.UserTemp;

public interface UserService {
	/**
	 * 查询当前用户的角色
	 */
	public String findUserRole(Object[] args);
	/**
	 * 保存用户
	 */
	public int saveUser(User user);
	/**
	 * 删除用户
	 */
	public void deleteUser(Integer uid);
	/**
	 * 更新用户
	 */
	public void updateUser(User user);
	/**
	 * 查询单个用户
	 */
	public User findUserById(Integer uid);
	/**
	 * 分页查询出所有的用户
	 */
	public Page pageUser(Integer pageNo,Integer pageSize,Map<String,String> parms);
	
	public Page pageUser(Integer pageNo,Integer pageSize,String username);
	/**
	 * 改更用户角色
	 */
	public void updateTitle(Object[] params);
	/**
	 * 通过userId找到该用户还有多少条可用条数
	 * 根据tab_recharge这张表的date字段和当前时间进行比较，如果大于30天，说明该记录拥有的条数就失效
	 * 最后要更新user类里面的num
	 * @return
	 */
	public Integer getNum(Integer uid);
	
	public Integer updateMonthNum(Integer uid);
	
	
	/**
	 * 
	 * Description: 根据用户名查找<br>
	 * @param username
	 * @return
	 */
	public User findByUsername(String username);
	/**
	 * 管理员登陆时要将验证码发到邮箱
	 * @param code
	 * @return
	 */
	public Boolean sendEmail(String code);
	/**
	 * 邮箱验证时,保存临时用户信息
	 * @param userTemp
	 * @return
	 */
	public Integer saveUserTemp(UserTemp userTemp);
	/**
	 * 邮箱验证时,取临时用户信息
	 * @param userTemp
	 * @return
	 */
	public UserTemp getUserTempById(Integer id);
	public void deleteUserTemp(UserTemp userTemp);
	/**
	 * 用户注册时验证邮箱是否重复
	 * @param email
	 * @return
	 */
	public boolean validEmail(String email);
	/**
	 * 用户注册时验证帐号是否重复
	 * @param email
	 * @return
	 */
	public boolean validUserName(UserTemp userTemp);
	
}
